package estacion.acciones;

import java.util.ArrayList;
import java.util.List;
import java.util.Vector;

import javax.swing.JOptionPane;

import com.opensymphony.xwork2.ActionSupport;

import estacion.dominio.Autobus;
import estacion.dominio.Cliente;
import estacion.dominio.Conductor;
import estacion.dominio.Estacion;
import estacion.dominio.Linea;
import estacion.dominio.Persona;
import estacion.dominio.Producto;
import estacion.dominio.Revisor;
import estacion.dominio.Taxi;
import estacion.dominio.Tienda;
import estacion.dominio.TiposLicencia;
import estacion.dominio.Tramo;
import estacion.dominio.Tren;
import estacion.dominio.Vehiculo;
import estacion.dominio.Vendedor;

import estacion.dominio.Trabajador;



public class GestorDatosPersonas extends ActionSupport {
	private static final long serialVersionUID = 1L;
	private List<Persona> vendedores;
	private List<Persona> clientes;
	private List<Persona> revisores;
	private List<Persona> conductores;
	private List<TiposLicencia> licencias;
	private Cliente cliente;
	private Vendedor vendedor;
	private Conductor conductor;
	private Revisor revisor;
	private TiposLicencia li;
	
	//variables de modificacion
	private String dni;
	private String nombre;
	private String apellido1;
	private String apellido2;
	private long num_cuenta;
	private int horas_trabajadas;
	private String turno;
	private int horas_seguidas;
	private String nombre_tienda;
	private String email;
	private String rol;
	private String tipo_vehiculo;
	private double dinero_revisor;
	private int operacion;
	
	//variables de insercion
	private String dni_2;
	private String nombre_2;
	private String apellido1_2;
	private String apellido2_2;
	private long num_cuenta_2=0;
	private int horas_trabajadas_2=0;
	private String turno_2;
	private int horas_seguidas_2=0;
	private int codigo_tienda_2=0;
	private String nombre_tienda1;
	private String email_2;
	private String rol_2;
	private String tipo_vehiculo_2;
	private double dinero_revisor_2=0;
	private String licencia;
	private String licencia_2;
	private boolean vacio;
	private boolean insertada;
	private boolean Vrol;
	private boolean person;
	private boolean modif;
	private boolean elim;
	private ArrayList<String> lic;
	private ArrayList<String> veh;
	private ArrayList<String> lin;
	private ArrayList<String> tie;
	private boolean aviso;
	private boolean aviso1;


	@Override
	public String execute() throws Exception {
		try {
			this.cliente=new Cliente();
			this.vendedor=new Vendedor();
			this.conductor=new Conductor();
			this.revisor=new Revisor();
			this.li=new TiposLicencia();
			this.licencias=li.getLicencias();
			
			
			if(this.operacion==Constantes.BUSCARCLI){
					clientes=cliente.getPersonas();				
			}
			else if(this.operacion==Constantes.BUSCARVEN){
				vendedores=vendedor.getPersonas();
				this.setRol("Vendedor");
			}
			else if(this.operacion==Constantes.BUSCARREV){
				revisores=revisor.getPersonas();
				this.setRol("Revisor");
			}
			else if(this.operacion==Constantes.BUSCARCON){
				conductores=conductor.getPersonas();
				this.setRol("Conductor");
			}
			else if(this.operacion==Constantes.MODIFICAR){
				if(puedo1()){
					this.modificar();
					modif=true;
				}
			}
			else if(this.operacion==Constantes.ANADIR){
				if(!existe()){
				if(this.getRol_2().equals("Vendedor")||this.getRol_2().equals("Conductor")||this.getRol_2().equals("Revisor")||this.getRol_2().equals("Cliente")){
					if(puedo()){
						this.insertarPersona();
						insertada=true;
					}else vacio=true;
				  }else Vrol=true;
				}else person=true;
			}
			else if(this.operacion==Constantes.ELIMINAR){
				if(puedo1()){
					this.eliminarPersona();
					elim=true;
				}
			}
			
		}
		catch (Exception e) {
		}
		return SUCCESS;		
    }
	
	private boolean puedo() throws Exception {
		boolean puedo=true;
		if(this.getDni_2().equals("")) puedo=false;
		if(this.getApellido1_2().equals("")) puedo=false;
		if(this.getNombre_2().equals("")) puedo=false;
		if(this.getRol_2().equals("")) puedo=false;
		if(this.getRol_2().equals("Conductor")){
			if(this.getTipo_vehiculo_2().equals("")) puedo=false;
			if(!coincideLicencias()) puedo=false;
			Conductor r=new Conductor();
			r=(Conductor) r.consultarOcupado(this.tipo_vehiculo_2);
			if(r!=null){ puedo=false;setAviso1(true);}
		}
		if(this.getRol_2().equals("Revisor")){
			if(this.getTipo_vehiculo_2().equals("")) puedo=false;
			Tren tr=new Tren();
			if(!tr.consultarVehiculo(this.getTipo_vehiculo_2()).get_Licencia_necesitada().equals("tren")) puedo=false;
			Revisor r=new Revisor();
			r=(Revisor) r.consultarOcupado(this.tipo_vehiculo_2);
			if(r!=null){ puedo=false;setAviso(true);}
		}
		if(this.getRol_2().equals("Vendedor")){
			if(this.nombre_tienda1.equals("--")) puedo=false;
		}
		return puedo;
	}
	
	private boolean puedo1(){
		boolean puedo=true;
		if(this.getDni().equals("")) puedo=false;
		return puedo;
	}
	private boolean coincideLicencias() throws Exception {
		Taxi t=new Taxi();
		t=(Taxi) t.consultarVehiculo(this.getTipo_vehiculo_2());
		if(t.get_Licencia_necesitada().equals(this.getLicencia_2())) return true;
		else return false;
	}

	private boolean existe() throws Exception{
		boolean existe=false;
		if(cliente.consultarPersona(dni_2)!=null) existe=true;
		if(vendedor.consultarPersona(dni_2)!=null) existe=true;
		if(revisor.consultarPersona(dni_2)!=null) existe=true;
		if(conductor.consultarPersona(dni_2)!=null) existe=true;
		return existe;
	}

	private void eliminarPersona() throws Exception {
		if(this.rol.equals("Cliente")){	
			cliente.eliminarPersona(dni);			
		}else if(this.rol.equals("Vendedor")){	
			vendedor.eliminarPersona(dni);			
		}else if(this.rol.equals("Conductor")){	
			conductor.setTipo_vehiculo(this.tipo_vehiculo);
			TiposLicencia l=new TiposLicencia();
			l.setTipo_licencia(this.licencia);
			conductor.setLicencia(l);
			int linea=0;
			if(!conductor.getLicencia().getTipo_licencia().equals("taxi")){
				if(conductor.getLicencia().getTipo_licencia().equals("tren")){
					Tren tr=new Tren();
					tr=(Tren) tr.consultarVehiculo(((Conductor) conductor).getTipo_vehiculo());
					linea=tr.getLinea().getCodigo_linea();
				}else if(conductor.getLicencia().getTipo_licencia().equals("bus")){
					Autobus b=new Autobus();
					b=(Autobus) b.consultarVehiculo(((Conductor) conductor).getTipo_vehiculo());
					linea=b.getLinea().getCodigo_linea();
				}
				Producto pr=new Producto();
				pr.eliminarBillete(linea);	
			}
			conductor.eliminarPersona(dni);	
		}else if(this.rol.equals("Revisor")){	
			revisor.eliminarPersona(dni);			
		}
	}
	
	private void insertarPersona() throws Exception {
		
		if(this.rol_2.equals("Cliente")){
			Cliente c_new=new Cliente();
			c_new.setDNI(this.dni_2);
			c_new.setNombre(this.nombre_2);
			c_new.setApellido1(this.apellido1_2);
			c_new.setApellido2(this.apellido2_2);
			c_new.setContrasena(this.dni_2);
			c_new.setNum_cuenta_corriente(this.num_cuenta_2);
			c_new.setEmail(this.email_2);
			c_new.setRol(this.rol_2);
			c_new.insertPersona();
		}else if(this.rol_2.equals("Vendedor")){
			Vendedor t_new=new Vendedor();
			Tienda tie=new Tienda();
			t_new.setDNI(this.dni_2);
			t_new.setNombre(this.nombre_2);
			t_new.setApellido1(this.apellido1_2);
			t_new.setApellido2(this.apellido2_2);
			t_new.setContrasena(this.dni_2);
			t_new.setNum_cuenta_corriente(this.num_cuenta_2);
			t_new.setHoras_trabajadas(this.horas_trabajadas_2);
			t_new.setTurno(this.turno_2);
			t_new.setHoras_seguidas(this.horas_seguidas_2);
			tie=tie.consultTienda(nombre_tienda1);
			t_new.settienda(tie);
			t_new.setEmail(this.email_2);
			t_new.setRol(this.rol_2);
			t_new.setHoras_seguidas(this.horas_seguidas_2);
			t_new.insertPersona();
		}else if(this.rol_2.equals("Conductor")){
			Conductor t_new=new Conductor();
			TiposLicencia li=new TiposLicencia();
			t_new.setDNI(this.dni_2);
			t_new.setNombre(this.nombre_2);
			t_new.setApellido1(this.apellido1_2);
			t_new.setApellido2(this.apellido2_2);
			t_new.setContrasena(this.dni_2);
			t_new.setNum_cuenta_corriente(this.num_cuenta_2);
			t_new.setHoras_trabajadas(this.horas_trabajadas_2);
			t_new.setTurno(this.turno_2);
			t_new.setHoras_seguidas(this.horas_seguidas_2);
			t_new.setEmail(this.email_2);
			t_new.setRol(this.rol_2);
			t_new.setTipo_vehiculo(this.tipo_vehiculo_2);
			t_new.setDinero_revisor(dinero_revisor_2);
			t_new.setHoras_seguidas(this.horas_seguidas_2);
			li.setTipo_licencia(this.licencia_2);
			t_new.setLicencia(li);
			t_new.insertPersona();
			int cantidad=0;
			int linea=0;
			Producto pr=new Producto();
			if(t_new.getLicencia().getTipo_licencia().equals("tren")){
				Tren tr=new Tren();
				tr=(Tren) tr.consultarVehiculo(t_new.getTipo_vehiculo());
				linea=tr.getLinea().getCodigo_linea();
				cantidad=tr.get_capacidadPersonas();
				pr.setProveedor("Renfe");
			}else if(t_new.getLicencia().getTipo_licencia().equals("bus")){
				Autobus b=new Autobus();
				b=(Autobus) b.consultarVehiculo(t_new.getTipo_vehiculo());
				linea=b.getLinea().getCodigo_linea();
				cantidad=b.get_capacidadPersonas();
				pr.setProveedor("Aisa");
			}
			if(!t_new.getLicencia().getTipo_licencia().equals("taxi")){
				Tramo t=new Tramo();
				int tramos=t.consultarTramos(linea);
				
				while(tramos>0){
					pr.setCodigo_tienda(4);
					pr.setTipo("Billete"+linea+"_"+tramos);
					pr.setCantidad_producto(cantidad);
					pr.setCodigo_linea(linea);
					pr.setCodigo_tramo(tramos);
					pr.setPrecio(150/tramos);
					pr.insertBillete();
					tramos--;
				}
			}
		}else if(this.rol_2.equals("Revisor")){
			Revisor t_new=new Revisor();
			t_new.setDNI(this.dni_2);
			t_new.setNombre(this.nombre_2);
			t_new.setApellido1(this.apellido1_2);
			t_new.setApellido2(this.apellido2_2);
			t_new.setContrasena(this.dni_2);
			t_new.setNum_cuenta_corriente(this.num_cuenta_2);
			t_new.setHoras_trabajadas(this.horas_trabajadas_2);
			t_new.setTurno(this.turno_2);
			t_new.setHoras_seguidas(this.horas_seguidas_2);
			t_new.setEmail(this.email_2);
			t_new.setRol(this.rol_2);
			t_new.setTipo_vehiculo(this.tipo_vehiculo_2);
			t_new.setDinero_revisor(dinero_revisor_2);
			t_new.setHoras_seguidas(this.horas_seguidas_2);
			t_new.insertPersona();
		}
			
	}

	private void modificar() throws Exception {
		cliente=(Cliente) cliente.consultarPersona(dni);
		vendedor=(Vendedor) vendedor.consultarPersona(dni);
		conductor=(Conductor) conductor.consultarPersona(dni);
		revisor=(Revisor) revisor.consultarPersona(dni);
		
		if(cliente!=null){
			cliente.setNombre(this.nombre);
			cliente.setApellido1(this.apellido1);
			cliente.setApellido2(this.apellido2);
			cliente.setNum_cuenta_corriente(this.num_cuenta);
			cliente.setEmail(this.email);
			cliente.setRol(this.rol);
			cliente.modificarPersona();
		}else if(vendedor!=null){
			vendedor.setNombre(this.nombre);
			vendedor.setApellido1(this.apellido1);
			vendedor.setApellido2(this.apellido2);
			vendedor.setNum_cuenta_corriente(this.num_cuenta);
			vendedor.setHoras_trabajadas(this.horas_trabajadas);
			vendedor.setTurno(this.turno);
			vendedor.setHoras_seguidas(this.horas_seguidas);
			vendedor.setEmail(this.email);
			vendedor.modificarPersona();
		}else if(conductor!=null){
			conductor.setNombre(this.nombre);
			conductor.setApellido1(this.apellido1);
			conductor.setApellido2(this.apellido2);
			conductor.setNum_cuenta_corriente(this.num_cuenta);
			conductor.setHoras_trabajadas(this.horas_trabajadas);
			conductor.setTurno(this.turno);
			conductor.setHoras_seguidas(this.horas_seguidas);
			conductor.setEmail(this.email);
			conductor.setDinero_revisor(this.dinero_revisor);
			conductor.modificarPersona();
		}else if(revisor!=null){
			revisor.setNombre(this.nombre);
			revisor.setApellido1(this.apellido1);
			revisor.setApellido2(this.apellido2);
			revisor.setNum_cuenta_corriente(this.num_cuenta);
			revisor.setHoras_trabajadas(this.horas_trabajadas);
			revisor.setTurno(this.turno);
			revisor.setHoras_seguidas(this.horas_seguidas);
			revisor.setEmail(this.email);
			revisor.setDinero_revisor(this.dinero_revisor);
			revisor.modificarPersona();
		}
	}
	
	
	public String getDni(){
		return dni;
	}
	
	public void setDni(String dni){
		this.dni=dni;
	}
	
	public void setOperacion(String operacion){
		if (operacion.equalsIgnoreCase("Buscar_clientes"))
			this.operacion = Constantes.BUSCARCLI;
		else if (operacion.equalsIgnoreCase("Buscar_vendedores"))
			this.operacion = Constantes.BUSCARVEN;
		else if (operacion.equalsIgnoreCase("Buscar_revisores"))
			this.operacion = Constantes.BUSCARREV;
		else if (operacion.equalsIgnoreCase("Buscar_conductores"))
			this.operacion = Constantes.BUSCARCON;
		else if (operacion.equalsIgnoreCase("Modificar"))
			this.operacion=Constantes.MODIFICAR;
		else if(operacion.equalsIgnoreCase("Cargar datos"))
			this.operacion=Constantes.CARGAR;
		else if(operacion.equalsIgnoreCase("Anadir"))
			this.operacion=Constantes.ANADIR;
		else if(operacion.equalsIgnoreCase("Eliminar")){
			this.operacion=Constantes.ELIMINAR;
		}
	}
	
	
	
	public List<String> estaciones() throws Exception {
		Estacion e = new Estacion();
		List<Estacion> aux = e.getEstaciones();
		List<String> estaciones = new ArrayList<String>();
		for(int i=0; i<aux.size();i++) estaciones.add(aux.get(i).getEstacion());
		
		return estaciones;
	}
	
	public ArrayList<String> nombres_lineas() throws Exception{
		Linea lin = new Linea();
		ArrayList<String> nombres = new ArrayList<String>();
		Vector<Linea> lineas = new Vector<Linea>();
		
		lineas = lin.getLineas();
		
		for(int i=0; i<lineas.size();i++) nombres.add(lineas.get(i).getnombre());
		
		return nombres;
	}
	
	public ArrayList<String> nombres_lineas_sin() throws Exception{
		Linea lin = new Linea();
		Tren t = new Tren();
		ArrayList<String> nombres = new ArrayList<String>();
		Vector<Linea> lineas = new Vector<Linea>();
		
		lineas = lin.getLineas();
		
		for(int i=0; i<lineas.size();i++){
			if(t.consultarVehiculoLinea(lineas.get(i).getCodigo_linea()) == null){
				nombres.add(lineas.get(i).getnombre());
			}
		}
		
		return nombres;
	}
	
	public ArrayList<Integer> codigos_lineas() throws Exception{
		Linea lin = new Linea();
		ArrayList<Integer> codigos = new ArrayList<Integer>();
		Vector<Linea> lineas = new Vector<Linea>();
		
		lineas = lin.getLineas();
		
		for(int i=0; i<lineas.size();i++) codigos.add(lineas.get(i).getCodigo_linea());
		
		return codigos;
	}

	public List<Persona> getRevisores() {
		return revisores;
	}
	
	public List<Persona> getVendedores() {
		return vendedores;
	}
	
	public List<Persona> getConductores() {
		return conductores;
	}

	public Cliente getCliente() {
		return cliente;
	}

	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}

	public List<Persona> getClientes() {
		return clientes;
	}

	public String getLicencia() {
		return licencia;
	}

	public void setLicencia(String licencia) {
		this.licencia = licencia;
	}

	public String getLicencia_2() {
		return licencia_2;
	}

	public void setLicencia_2(String licencia_2) {
		this.licencia_2 = licencia_2;
	}


	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getApellido1() {
		return apellido1;
	}

	public void setApellido1(String apellido1) {
		this.apellido1 = apellido1;
	}

	public String getApellido2() {
		return apellido2;
	}

	public void setApellido2(String apellido2) {
		this.apellido2 = apellido2;
	}

	public long getNum_cuenta() {
		return num_cuenta;
	}

	public void setNum_cuenta(long num_cuenta) {
		this.num_cuenta = num_cuenta;
	}

	public int getHoras_trabajadas() {
		return horas_trabajadas;
	}

	public void setHoras_trabajadas(int horas_trabajadas) {
		this.horas_trabajadas = horas_trabajadas;
	}

	public String getTurno() {
		return turno;
	}

	public void setTurno(String turno) {
		this.turno = turno;
	}

	public int getHoras_seguidas() {
		return horas_seguidas;
	}

	public void setHoras_seguidas(int horas_seguidas) {
		this.horas_seguidas = horas_seguidas;
	}

	public String getnombre_tienda() {
		return nombre_tienda;
	}

	public void setnombre_tienda(String n_tienda) {
		this.nombre_tienda = n_tienda;
	}
	
	public String getNombre_tienda1() {
		return nombre_tienda1;
	}

	public void setNombre_tienda1(String nombre_tienda) {
		this.nombre_tienda1 = nombre_tienda;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getRol() {
		return rol;
	}

	public void setRol(String rol) {
		this.rol = rol;
	}

	public String getTipo_vehiculo() {
		return tipo_vehiculo;
	}

	public void setTipo_vehiculo(String tipo_vehiculo) {
		this.tipo_vehiculo = tipo_vehiculo;
	}

	public double getDinero_revisor() {
		return dinero_revisor;
	}

	public void setDinero_revisor(double dinero_revisor) {
		this.dinero_revisor = dinero_revisor;
	}

	public String getDni_2() {
		return dni_2;
	}

	public void setDni_2(String dni_2) {
		this.dni_2 = dni_2;
	}

	public String getNombre_2() {
		return nombre_2;
	}

	public void setNombre_2(String nombre_2) {
		this.nombre_2 = nombre_2;
	}

	public String getApellido1_2() {
		return apellido1_2;
	}

	public void setApellido1_2(String apellido1_2) {
		this.apellido1_2 = apellido1_2;
	}

	public String getApellido2_2() {
		return apellido2_2;
	}

	public void setApellido2_2(String apellido2_2) {
		this.apellido2_2 = apellido2_2;
	}


	public long getNum_cuenta_2() {
		return num_cuenta_2;
	}

	public void setNum_cuenta_2(long num_cuenta_2) {
		this.num_cuenta_2 = num_cuenta_2;
	}

	public int getHoras_trabajadas_2() {
		return horas_trabajadas_2;
	}

	public void setHoras_trabajadas_2(int horas_trabajadas_2) {
		this.horas_trabajadas_2 = horas_trabajadas_2;
	}

	public String getTurno_2() {
		return turno_2;
	}

	public void setTurno_2(String turno_2) {
		this.turno_2 = turno_2;
	}

	public int getHoras_seguidas_2() {
		return horas_seguidas_2;
	}

	public void setHoras_seguidas_2(int horas_seguidas_2) {
		this.horas_seguidas_2 = horas_seguidas_2;
	}

	public int getCodigo_tienda_2() {
		return codigo_tienda_2;
	}

	public void setCodigo_tienda_2(int codigo_tienda_2) {
		this.codigo_tienda_2 = codigo_tienda_2;
	}

	public String getEmail_2() {
		return email_2;
	}

	public void setEmail_2(String email_2) {
		this.email_2 = email_2;
	}

	public String getRol_2() {
		return rol_2;
	}

	public void setRol_2(String rol_2) {
		this.rol_2 = rol_2;
	}

	public String getTipo_vehiculo_2() {
		return tipo_vehiculo_2;
	}

	public void setTipo_vehiculo_2(String tipo_vehiculo_2) {
		this.tipo_vehiculo_2 = tipo_vehiculo_2;
	}

	public double getDinero_revisor_2() {
		return dinero_revisor_2;
	}

	public void setDinero_revisor_2(double dinero_revisor_2) {
		this.dinero_revisor_2 = dinero_revisor_2;
	}

	public boolean isVacio() {
		return vacio;
	}

	public void setVacio(boolean vacio) {
		this.vacio = vacio;
	}

	public boolean isInsertada() {
		return insertada;
	}

	public void setInsertada(boolean insertada) {
		this.insertada = insertada;
	}

	public boolean isVrol() {
		return Vrol;
	}

	public void setVrol(boolean vrol) {
		Vrol = vrol;
	}

	public boolean isPerson() {
		return person;
	}

	public void setPerson(boolean person) {
		this.person = person;
	}
	
	public List<TiposLicencia> getLicencias() {
		return licencias;
	}

	public void setLicencias(List<TiposLicencia> licencias) {
		this.licencias = licencias;
	}
	
	public boolean isModif() {
		return modif;
	}

	public void setModif(boolean modif) {
		this.modif = modif;
	}

	public boolean isElim() {
		return elim;
	}

	public void setElim(boolean elim) {
		this.elim = elim;
	}

	public ArrayList<String> li(){
		lic = new ArrayList<String>();
		lic.add("--");
		lic.add("tren");
		lic.add("taxi");
		lic.add("bus");
		return lic;
	}

	
	public ArrayList<String> vehiculos() throws Exception{
		Taxi taxi=new Taxi();
		Autobus autobus=new Autobus();
		Tren tren=new Tren();
		Conductor cond=new Conductor();
		List<Persona> conds=cond.getPersonas();
		Revisor rev=new Revisor();
		List<Persona> revs=rev.getPersonas();
		List<Vehiculo> taxis=taxi.getVehiculos();
		List<Vehiculo> trenes=tren.getVehiculos();
		List<Vehiculo> autobuses=autobus.getVehiculos();
		veh = new ArrayList<String>();
		veh.add("--");
		for(int i=0;i<taxis.size();i++)	veh.add(taxis.get(i).getCodigo_vehiculo());
		for(int i=0;i<trenes.size();i++)veh.add(trenes.get(i).getCodigo_vehiculo());
		for(int i=0;i<autobuses.size();i++)veh.add(autobuses.get(i).getCodigo_vehiculo());
		for(int i=0;i<conds.size();i++){
			for(int j=0;j<veh.size();j++){
				if(veh.get(j).equals((((Conductor) conds.get(i)).getTipo_vehiculo()))&&!((Conductor) conds.get(i)).getLicencia().getTipo_licencia().equals("tren")){
					veh.remove(j);
				}
			}
		}
	   for(int i=0;i<conds.size();i++){
		   for(int k=0;k<revs.size();k++){
			for(int j=0;j<veh.size();j++){
				if(veh.get(j).equals((((Conductor) conds.get(i)).getTipo_vehiculo()))&&veh.get(j).equals((((Revisor) revs.get(k)).getTipo_vehiculo()))){
					veh.remove(j);
				}
			}
		   }
		}
		
		return veh;
	}
	
	
	public ArrayList<String> tienda() throws Exception{
		Tienda tienda=new Tienda();
		Vendedor vend=new Vendedor();
		List<Persona> vends=vend.getPersonas();
		List<Tienda> tiendas=tienda.getTiendas();
		tie = new ArrayList<String>();
		tie.add("--");
		for(int k=0;k<tiendas.size();k++) tie.add(tiendas.get(k).getTipo_producto());
		for(int i=0;i<vends.size();i++){
			for(int j=0;j<tie.size();j++){
				if(tie.get(j).equals(tienda.consultTiendaporCodigo(((Vendedor) vends.get(i)).gettienda().getCodigo_Tienda()).getTipo_producto())){
					tie.remove(j);
				}
			}
		}
		return tie;
	}
	
	
	public ArrayList<String> linea() throws Exception{
		Linea linea=new Linea();
		Tramo t=new Tramo();
		Tren tr=new Tren();
		Autobus b=new Autobus();
		List<Vehiculo> trenes=tr.getVehiculos();
		List<Vehiculo> buses=b.getVehiculos();
		List<Linea> lineas=linea.getLineas();
		lin = new ArrayList<String>();
		lin.add("--");
		for(int i=0;i<lineas.size();i++){
			if(t.consultarTramos(lineas.get(i).getCodigo_linea())>0)lin.add(lineas.get(i).getnombre());
		}
		for(int i=0;i<trenes.size();i++){
			for(int j=0;j<lin.size();j++){
				if(lin.get(j).equals(linea.consultarLinea(((Tren)trenes.get(i)).getLinea().getCodigo_linea()).getnombre())){
					lin.remove(j);
				}
			}
		}
		for(int i=0;i<buses.size();i++){
			for(int j=0;j<lin.size();j++){
				if(lin.get(j).equals(linea.consultarLinea(((Autobus)buses.get(i)).getLinea().getCodigo_linea()).getnombre())){
					lin.remove(j);
				}
			}
		}
		return lin;
	}
	public List<Estacion> getEstaciones() throws Exception {
		Estacion e=new Estacion();
		return e.getEstaciones();
	}

	public boolean isAviso() {
		return aviso;
	}

	public void setAviso(boolean aviso) {
		this.aviso = aviso;
	}

	public boolean isAviso1() {
		return aviso1;
	}

	public void setAviso1(boolean aviso1) {
		this.aviso1 = aviso1;
	}
	
}

